home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / reader_requests / alienbreed3d2 / cheesesauce / protcalc.s < prev    next >
Text File  |  1997-11-28  |  1KB  |  83 lines

  1.  
  2. strt:
  3.  
  4. MODIT MACRO
  5.  divs #800,\1
  6.  swap \1
  7.  ENDM
  8.  
  9.  moveq #0,d3
  10.  move.w d1,d3
  11.  move.l d3,d1
  12.  divu #50,d1
  13.  lsr.w #8,d3
  14.  swap d1
  15.  swap d2
  16.  clr.w d2
  17.  swap d2
  18.  divu #17,d2
  19.  swap d2
  20.  addq #1,d1
  21.  addq #1,d2
  22.  divu #7,d3
  23.  swap d3
  24.  lea TABLE(pc),a0
  25.  asl.w #4,d3
  26.  add.w d3,a0
  27.  
  28.  move.w d1,d0    ;row
  29.  muls d0,d0    ;row*row
  30.  MODIT d0
  31.  move.w d2,d4    ;col
  32.  muls d4,d4    ;col*col
  33.  MODIT d4    
  34.  move.w d0,d5    ;row*row
  35.  muls d5,d5    ;row*row*row*row
  36.  MODIT d5 
  37.  move.w d4,d6    ;col*col
  38.  muls d6,d6    ;col*col*col*col
  39.  MODIT d6    
  40.  muls d5,d6    ;row*row*row*row*col*col*col*col
  41.  MODIT d6
  42.  muls (a0),d6    ;*var a
  43.  MODIT d6
  44.  
  45.  muls d1,d4
  46.  MODIT d4
  47.  muls d2,d4
  48.  muls 2(a0),d4
  49.  MODIT d4
  50.  add.w d4,d6
  51.  
  52.  move.w d1,d0
  53.  muls d2,d0
  54.  MODIT d0
  55.  muls 4(a0),d0
  56.  MODIT d0
  57.  add.w d0,d6
  58.  muls 6(a0),d1
  59.  MODIT d1
  60.  muls 8(a0),d2
  61.  MODIT d2
  62.  add.w d1,d2
  63.  add.w d2,d6
  64.  add.w 10(a0),d6
  65.  ext.l d6
  66.  MODIT d6
  67.  neg.w d6
  68.  add.w #999,d6
  69.  move.w d6,d0
  70.  rts
  71.  
  72. TABLE:
  73.  dc.w 14,58,64,25,94,36,0,0
  74.  dc.w 22,9,16,34,65,87,0,0
  75.  dc.w 132,62,97,112,154,38,0,0
  76.  dc.w 174,192,46,36,74,86,0,0
  77.  dc.w 32,62,94,96,66,55,0,0
  78.  dc.w 162,111,98,10,20,31,0,0
  79.  dc.w 58,34,99,35,100,75,0,0
  80.  
  81. edn:
  82.  
  83.